1. Field of the Invention
In general, the present invention generally relates to a method, system and program product for controlling native applications using open service gateway initiative (OSGi) bundles. Specifically, the present invention allows native applications running in a native environment on a client device to be controlled through OSGi bundles running in an OSGi environment on the client device.
2. Related Art
As computer networking has become more advanced, a standard known as the Open Service Gateway Initiative (OSGi) has been developed (OSGi is a trademark, registered trademark, or service mark of The OSGi Alliance in the US and other countries). The OSGi is an industry plan to provide a standard way to deliver managed services to devices and local networks. With such a standard, home users could, for example, change the setting on their thermostat from a remote location (e.g., the workplace). In general, the OSGi provides a good framework for developing application components. Under the OSGi, a basic component is known as an OSGi bundle. An OSGi application can be made up of combinations/suites of bundles that might use common functionality. To this extent, the OSGi allows developers to define the dependencies between the bundles such as the packages and services required by the bundles. The OSGi runtime can also determine whether a device has the necessary packages and resources. In a typical implementation, an OSGi architecture will include, among other components, a server and one or more client devices. Each client device will have an OSGi environment within which OSGi applications are deployed. Using a management program on the server, the functions of the OSGi applications can be controlled. One type of function often performed on OSGi client devices is life cycle management. Life cycle management allows OSGi applications to be staffed, stopped, updated, installed or uninstalled from the server.
Unfortunately, as convenient as the OSGi framework can be, it fails to provide for similar management/control of native applications on the client device. For example, a standard desktop (e.g., WIN-32 {WIN32 is a trademark, registered trademark, or service mark of Microsoft Corporation in the US and other countries}) computer could have several native application that run within a native environment. Typical examples of native applications include word processing programs, spreadsheets, etc. Since such applications are widely used, it would be highly advantageous to be able to control them in a similar manner from the OSGi environment. Currently, the only way to control the functions of the native application from the server is to write separate programs for each desired function. Not only is this extremely tedious, but it is also highly inefficient.
In general, the present invention provides a method, system and program product for controlling (e.g., managing a life cycle of) native applications using OSGi bundles. Specifically, under then the present invention, a native application is packaged within an OSGi bundle to create a link therebetween. Information describing the commands needed to control the life cycle of the bundle (install, uninstall, staff, stop) may also be stored within the OSGi bundle during this packaging step. In any event, the packaged OSGi bundle is installed within an OSGi environment of a client device. Once installed, the packaged OSGi bundle is deployed in a native environment of the client device and the native application is optionally removed from within the packaged OSGi bundle while maintaining the link. Thereafter, the native application within the native environment can be controlled from the server using the OSGi bundle within the OSGi environment.
A first aspect of the present invention provides a method for controlling native applications using Open Service Gateway Initiative (OSGi) bundles, comprising: packaging a native application within an OSGi bundle to create a link between the OSGi bundle and the native application (information describing the commands needed to control the life cycle of the bundle (install, uninstall, start, stop) may be stored within the bundle during the packaging step); installing the OSGi bundle within an OSGi environment of a client device after the packaging; deploying the OSGi bundle within a native environment of the client device; and controlling the native application within the native environment using the OSGi bundle within the OSGi environment.
A second aspect of the present invention provides a method for enabling life cycle management of native applications using Open Service Gateway Initiative (OSGi) bundles, comprising: packaging a native application within an OSGi bundle on a server to create a link between the OSGi bundle and the native application (information describing the commands needed to control the life cycle of the bundle (install, uninstall, start, stop) may be stored within the bundle during the packaging step); installing the OSGi bundle within an OSGi environment of a client device after the packaging; deploying the OSGi bundle within a native environment of the client device; removing the native application from within the OSGi bundle while maintaining the link; and managing a life cycle of the native application within the native environment using the OSGi bundle in the OSGi environment.
A third aspect of the present invention provides a system for controlling native applications using Open Service Gateway Initiative (OSGi) bundles, comprising: a packaging system for packaging a native application within an OSGi bundle to create a link between the OSGi bundle and the native application (information describing the commands needed to control the life cycle of the bundle (install, uninstall, start, stop) may be stored within the bundle during the packaging step); an exportation system for installing the OSGi bundle within an OSGi environment of a client device, wherein the OSGi bundle is thereafter deployed within a native environment of the client device; and a control system for controlling the native application within the native environment using the OSGi bundle within the OSGi environment.
A fourth aspect of the present invention provides a system for controlling native applications using Open Service Gateway Initiative (OSGi) bundles, comprising: means for packaging a native application within an OSGi bundle to create a link between the OSGi bundle and the native application; means for installing the OSGi bundle within an OSGi environment of a client device; means for deploying the OSGi bundle within a native environment of the client device; means for removing the native application from within the OSGi bundle while maintaining the link; and means for managing a life cycle of the native application within the native environment using the OSGi bundle within the OSGi environment.
A fifth aspect of the present invention provides a program product stored on a recordable medium for controlling native applications using Open Service Gateway Initiative (OSGi) bundles, which when executed, comprises: program code for packaging a native application within an OSGi bundle to create a link between the OSGi bundle and the native application (information describing the commands needed to control the life cycle of the bundle (install, uninstall, start, stop) may be stored within the bundle during the packaging step); program code for installing the OSGi bundle within an OSGi environment of a client device, wherein the OSGi bundle is thereafter deployed within a native environment of the client device; and program code for controlling the native application within the native environment using the OSGi bundle within the OSGi environment.
Therefore, the present invention provides a method, system and program product for controlling native application using OSGi bundles.
It is noted that the drawings of the invention are not necessarily to scale. The drawings are merely schematic representations, not intended to portray specific parameters of the invention. The drawings are intended to depict only typical embodiments of the invention, and therefore should not be considered as limiting the scope of the invention. In the drawings, like numbering represents like elements.